package com.demo.statemachine.d10;


import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
public enum SwapStates {
    IDLE("", "空闲状态"), BUSY("", "换电中"), HISTORY("", "标记状态"), SUSPEND("", "暂停"), FAULT("", "故障"),

    BUSY_START("",""),

    DATA_FORK("", "数据校验任务"), DATA_TASK("", "数据校验任务"), DATA_JOIN("", "数据校验任务"), DATA_CHOICE("", "数据校验任务"),
    ENV_FORK("", "环境准备任务"), ENV_TASK("", "环境准备任务"), ENV_JOIN("", "环境准备任务"), ENV_CHOICE("", "环境准备任务"),
    PRESET_FORK("", "预置任务"), PRESET_TASK("", "预置任务"), PRESET_JOIN("", "预置任务"), PRESET_CHOICE("", "预置任务"),
    SWAP_FORK("", "换电任务"), SWAP_TASK("", "换电任务"), SWAP_JOIN("", "换电任务"), SWAP_CHOICE("", "换电任务"),
    AGAIN_SWAP_CHOICE("", "再次换电"),
    END_FORK("", "换电结束任务"), END_TASK("", "换电结束任务"), END_JOIN("", "换电结束任务"), END_CHOICE("", "换电结束任务"),
    RESET_FORK("", "复位任务"), RESET_TASK("", "复位任务"), RESET_JOIN("", "复位任务"), RESET_CHOICE("", "复位任务"),
    //数据校验任务
    DATA_VEHICLE_PLATE_CHECK("", "车牌校验"), DATA_CLOUD_AUTH("", "云端认证"), DATA_VEHICLE_CONNECTION("", "车辆链接"),

    DATA_V_IN_PLACE("", "V槽到位"), DATA_VEHICLE_IN_PLACE("", "车辆到位"), DATA_VEHICLE_FREEDOM("", "车辆自由度"),

    DATA_SWAP_TYPE_CHOICE("", "换电方式选择"), DATA_FEEL_SWAP("", "有感换电"), DATA_NO_FEEL_SWAP("", "无感换电"), DATA_SCAN_CODE("", "扫码"),

    //环境准备任务
    ENV_FETCH_STRATEGY("", "取电策略"),ENV_FETCH_STRATEGY_RESULT("", "取电策略"),
    ENV_CAR_MACHINE_CONFIRM("", "车机确认"), ENV_CAR_MACHINE_CONFIRM_RESULT("", "车机确认"),
    ENV_PLC_CONFIRM("", "plc确认"),ENV_PLC_CONFIRM_RESULT("", "plc确认"),

    //预置任务
    PRESET_TASK1("", "预置任务一"),PRESET_TASK1_RESULT("", "预置任务一"),

    //换电任务
    SWAP_START("", "换电开始"), SWAP_UNINSTALL("", "电池卸载"),
    SWAP_INSTALL("", "电池安装"), SWAP_TRANSPORT("", "电池运输"),
    SWAP_VEHICLE_SELF_CHECK("", "车辆自检"), SWAP_FINISH("", "换电完成"),

    //换电结束任务
    END_AFTER_ROAD_GATE_STARTUP("", "后门道闸开启"), END_VEHICLE_OFF_PLACE("", "车辆离位信号接收"),
    END_AFTER_ROAD_GATE_SHUTDOWN("", "后门道闸关闭"), END_SWAP_END("", "换电结束"),


    //复位任务
    RESET_CAR_MACHINE("", "复位车机"),RESET_CAR_MACHINE_RESULT("", "复位车机"),
    RESET_PLC("", "复位PLC"),RESET_PLC_RESULT("", "复位PLC"),
    RESET_RBC("", "复位站控"),RESET_RBC_RESULT("", "复位站控"),
    ;
    private Integer index;
    private String name;
    private String comment;

    private SwapStates() {

    }

    private SwapStates(Integer index, String name, String comment) {
        this.index = index;
        this.name = name;
        this.comment = comment;
    }

    private SwapStates(String name, String comment) {
        this.name = name;
        this.comment = comment;
    }

    private SwapStates(String comment) {
        this.index = index;
        this.comment = comment;
    }


}
